# Copyright 2008 German Aerospace Center (DLR)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

""" callback bat script. """


import sys
import os
sys.path.append(os.getcwd())

from modules import Transaction

from modules import Process

def run(transaction, config):
    check = [".*\.*"]
    ignore =[]

    files = transaction.getFiles(check, ignore)

    batScriptFullPath = config.getString("CallbackBatScript.batScriptFullPath")

    command = "cmd /c %s " % (batScriptFullPath)

    files = [transaction.getFile(oneFile[0]) for oneFile in files.items() if oneFile[1] in ["A", "D"]]
    if len(files) == 0:    
      return ("", 0)
    	  
    try:
        Process.execute(command + " ".join(files))
    except Process.ProcessException as e:
        msg = "Coding style errors found:\n\n"
        msg += str(e.output) if isinstance(e.output,bytes) else e.output + "\n"
        msg += "See Checkstyle documentation for a detailed description: http://checkstyle.sourceforge.net/"
        return (msg, 1)

    return ("", 0)

if __name__ == "__main__":
    os.chdir("d:/Projects/_GitLab/firstgitlabproject1")
    transaction = Transaction.Transaction("c116de57f7c0a392b24a2a885bdab80d17ad4513",
                              "68c40f365963282759d13806eececaafd4e5f38e", "ref")
    resultArr = run(transaction, None)
    if resultArr[1] != 0:
        print(resultArr[0])
    pass
